package com.luxsoft.sw3.contabilidad.services;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.luxsoft.sw3.contabilidad.dao.CuentaContableDao;
import com.luxsoft.sw3.contabilidad.model.CuentaContable;

@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
public class CuentasContablesManagerImpl implements CuentasContablesManager{
	
	@Autowired
	private CuentaContableDao cuentaContableDao;

	@Transactional(propagation=Propagation.REQUIRED)
	public CuentaContable salvar(CuentaContable cuenta) {
		cuenta=cuentaContableDao.save(cuenta);
		return cuenta;
	}
	
	@Transactional(propagation=Propagation.REQUIRED)
	public void eliminarCuentaContable(CuentaContable cuenta){
		cuentaContableDao.remove(cuenta.getId());
	}

	public CuentaContableDao getCuentaContableDao() {
		return cuentaContableDao;
	}

	public void setCuentaContableDao(CuentaContableDao cuentaContableDao) {
		this.cuentaContableDao = cuentaContableDao;
	}
	
	@Autowired
	private HibernateTemplate hibernateTemplate;
	
	@Autowired
	private JdbcTemplate jdbcTemplate;

	public HibernateTemplate getHibernateTemplate() {
		return hibernateTemplate;
	}

	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}

	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

}
